Customization of network documents

ABSTRACT

User-selected customization information for a network (e.g., HTML) document is stored at a server with reference to user identifying information that uniquely identifies the user. Whenever the user navigates back to the network address of the HTML document, the user is identified automatically and receives a customized HTML document formed in accordance with the customization information.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.09/464,165, filed Dec. 15, 1999, now U.S. Pat. No. 6,424,981 which is acontinuation of U.S. patent application Ser. No. 08/761,566, filed Dec.6, 1996.

FIELD OF THE INVENTION

This invention relates generally to providing information to a user whoaccesses a document at a site on a computer network like the Internet oran intranet and, in particular, to automatically providing selected orcustomized information to the user.

BACKGROUND AND SUMMARY OF THE INVENTION

The Internet is a well known global network of cooperativelyinterconnected computer networks. The world wide web portion of theInternet is a collection of server computers (referred to as “sites”) onthe Internet which store HTML documents that can be publicly accessed bycomputer users having a connection to the Internet. There are many suchworld wide web sites on the Internet.

Software, generally known as “Internet browsers,” is now in wide-spreaduse for retrieving (also known as “downloading”) from the world-wide weband viewing electronic documents in hyper-text markup language (HTML)format. Originally, these HTML documents were simply ASCII codedcharacter files generally consisting of text and HTML “tags” thatspecify formatting of the document, links (referred to as “hyper-links”)to related documents on the network, and other files that containinformation (e.g., sound, images, video, etc.) to be combined into thedocument. Typical HTML documents found on the world wide web, sometimesreferred to as web pages, include both text and tags specifying filesfor images that are to be displayed with the text. In use, browsersoftware allows a user to navigate (also known as “browse”) betweendocuments and sites on the world-wide web.

Conventional HTML documents found on the world wide web are static inthat the document is simply transferred to each user who navigates tothe document. Although the document may include images or other mediaformats, the HTML document transferred to each user is the same. Thestrength of such a document format is that it includes links to otherdocuments or sites by which the user can navigate to a desired documentor site.

A common type of document on the world-wide web is the top-level ortrunk document for a particular site, often referred to as its homepage. A home page typically provides a user who accesses it with generalinformation about the provider of the network site and organizationalinformation about, and access to, lower levels the network site. Anothercommon type of document provides users with a convenient gateway to theworld wide web. These types of documents commonly provide access tonetwork search tools or services, news or other current eventhighlights, links to other sites of interest, etc. Such a networkgateway type document may be a home page or a lower-level document for aparticular network site.

It is a shortcoming of conventional HTML documents that all users whoaccess a document receive the same information and links. In the contextof a home page or a network gateway document, the static nature of HTMLdocuments requires that only generalized information and links areincluded in the document so that it appeals to the widest base of users.Excessive information and links in the document would cause it to be toolarge to be practicable for most users. For users accessing theworld-wide web over conventional “POTS” telephone connections andmodems, excessively large HTML documents can require more time fortransmission than many users are willing to accept.

To overcome these shortcomings of conventional HTML documents, an HTMLdocument customization method obtains and stores for a user customizinginformation for a customizable HTML document on a computer network likethe Internet or an Intranet. The customizable HTML document may be atop-level, trunk, or home page for a network site or a world-wide webgateway, or could be of any level at the network site and providevirtually any functionality of an HTML document.

One aspect of the method occurs when a user navigates to the networkaddress (e.g., Uniform Resource Locator) associated with thecustomizable HTML document and is offered the ability to customize theHTML document. The user might not have been to the network addressbefore, or not elected to customize the HTML document during a previousaccess of it, or will elect to revise customization options selected forthe HTML document during a previous access of it. The server returns anHTML customization document to the user. In one embodiment, the HTMLcustomization document is an HTML form that includes topical groupingsof customization options relating to, for example, favorite links, news,sports, financial matters, entertainment, science and technology, life,weather, etc. that a user selects with graphical check boxes, buttons,etc. The customization options may relate to links to sites that provideinformation on indirect links to the selected topics. In addition, theHTML customization document can allow the user to designate specificnetwork addresses or URLs to be included on the customized HTMLdocument. The user returns the selected customization options to theserver as customization information.

The customization information is stored at the server with reference touser identifying information that uniquely identifies the user, and theserver returns the user identifying information to the user (i.e., thebrowser on the user computer or client). In one embodiment, the useridentifying information is customization persistent client stateinformation, sometimes referred to as a “cookie.” The customizationpersistent client state information is or includes, for example, 128-bitglobally unique identifiers (“GUID”) that are capable of uniquelyidentifying each and every user.

Whenever the user navigates back to the network address associated withthe customizable HTML document, the browser on the user client passesthe customization persistent client state information or “cookie” backto the server. The server correlates the customization persistent clientstate information with the customization options stored at server andreturns to the user client a customized HTML document formed inaccordance with the customized options stored at server. The customizedHTML document may include information on the selected topics, obtainedfrom other sites, for example, or direct links to the other sites thathave the information.

This HTML or network document customization is capable or providing eachuser who accesses a network address with an HTML document that ismatched to that user's preferences. This customization adds to thestrength of linked information provided by HTML documents by providingeach user with the information, or links to information, that the useractually wants. Customization of HTML documents is particularlybeneficial for home pages, network gateway pages, or any other pagesthat potentially provide direct access to a wide variety of links orinformation.

Additional features and advantages of the invention will be madeapparent from the following detailed description of an illustratedembodiment which proceeds with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a computer system that may be used toimplement a method and apparatus embodying the invention.

FIG. 2 is a block diagram of the computer system of FIG. 1 connected toa remote computer network (e.g., the Internet) for locally browsingelectronic documents residing at a remote computer site.

FIG. 3 is a flow diagram representing an HTML document customizationmethod.

FIG. 4 is an illustration of a simplified HTML customization document asit would appear when rendered on the display of a user's computer.

FIG. 5 is a flow diagram of a customized HTML document delivery method.

FIG. 6 is an illustration of a simplified customized HTML document.

DETAILED DESCRIPTION OF EMBODIMENT

Referring to FIG. 1, an operating environment for an illustratedembodiment of the present invention is a computer system 20 with acomputer 22 that comprises at least one high speed processing unit (CPU)24, in conjunction with a memory system 26, an input device 28, and anoutput device 30. These elements are interconnected by at least one busstructure 32.

The illustrated CPU 24 is of familiar design and includes an ALU 34 forperforming computations, a collection of registers 36 for temporarystorage of data and instructions, and a control unit 38 for controllingoperation of the system 20. The CPU 24 may be a processor having any ofa variety of architectures including Alpha from Digital, MIPS from MIPSTechnology, NEC, IDT, Siemens, and others, x86 from Intel and others,including Cyrix, AMD, and Nexgen, and the PowerPc from IBM and Motorola.

The memory system 26 generally includes high-speed main memory 40 in theform of a medium such as random access memory (RAM) and read only memory(ROM) semiconductor devices, and secondary storage 42 in the form oflong term storage mediums such as floppy disks, hard disks, tape,CD-ROM, flash memory, etc. and other devices that store data usingelectrical, magnetic, optical or other recording media. The main memory40 also can include video display memory for displaying images through adisplay device. Those skilled in the art will recognize that the memory26 can comprise a variety of alternative components having a variety ofstorage capacities.

The input and output devices 28, 30 also are familiar. The input device28 can comprise a keyboard, a mouse, a physical transducer (e.g., amicrophone), etc. The output device 30 can comprise a display, aprinter, a transducer (e.g., a speaker), etc. Some devices, such as anetwork interface or a modem, can be used as input and/or outputdevices.

As is familiar to those skilled in the art, the computer system 20further includes an operating system and at least one applicationprogram. The operating system is the set of software which controls thecomputer system's operation and the allocation of resources. Theapplication program is the set of software that performs a task desiredby the user, using computer resources made available through theoperating system. Both are resident in the illustrated memory system 26.Preferably, the operating system employs a graphical user interfacewhere the display output of an application program is presented in arectangular area (sometimes referred to as a “Window”) on the screen ofthe output device 30 and is also multi-tasking (allowing applicationprograms to execute computing tasks in multiple threads), such asMicrosoft Corporation's Windows® 95 or Windows® NT operating system,IBM's OS/2 Warp operating system, Apple's Macintosh System 7 operatingsystem, X-Windows, etc.

In accordance with the practices of persons skilled in the art ofcomputer programming, the present invention is described below withreference to acts and symbolic representations of operations that areperformed by computer system 20, unless indicated otherwise. Such actsand operations are sometimes referred to as being computer-executed. Itwill be appreciated that the acts and symbolically representedoperations include the manipulation by the CPU 24 of electrical signalsrepresenting data bits which causes a resulting transformation orreduction of the electrical signal representation, and the maintenanceof data bits at memory locations in memory system 26 to therebyreconfigure or otherwise alter the computer system's operation, as wellas other processing of signals. The memory locations where data bits aremaintained are physical locations that have particular electrical,magnetic, or optical properties corresponding to the data bits.

FIG. 2 shows a browsing environment 50 in which computer 20 (FIG. 1) asa client runs software, referred to herein as a “browser,” for unifiedbrowsing of electronic documents and other data from local sources(e.g., the secondary storage 42 of FIG. 1) and from a remote computernetwork 52. The browser can be integrated with the operating systemsoftware, or can be separate application software. The illustratedremote computer network 52 may be the Internet or an intranet. In theillustrated browsing environment 50, the computer 20 connects to thecomputer network 52 over a telephone line 54 with a modem 56. Otherphysical connections to the computer network alternatively can be used,such as an ISDN, T1 or like high speed telephone line and modem, atelevision cable and modem, a satellite link, an optical fiber link, anEthernet or other local area network technology wire and adapter card,radio or optical transmission devices, etc. The invention canalternatively be embodied in a browsing environment for other public orprivate computer networks, such as a computer network of a commercialon-line service or an internal corporate local area network (LAN), anintranet, or like computer network.

Documents for browsing with the illustrated browser can reside as filesof a file system stored in the computer's secondary storage 42 (FIG. 1),or reside as resources at a remote computer 58 (also referred to as a“site” or server) connected to the computer network 52, such as aworld-wide web site on the Internet. The illustrated document 60residing at the site 58 conforms with HTML standards, and may includeextensions and enhancements of HTML standards. However, the illustratedbrowser also can browse documents having other data formats (e.g.,Microsoft® Word documents, etc.) from the computer 20 or remote computer58. In conformance with HTML, the illustrated document 60 canincorporate other additional information content 62, such as images,audio, video, executable programs, etc. (hereafter simply “images” 62),which also reside at the remote computer 58. The document 60 and images62 preferably are stored as files in a file system of the remotecomputer 58. The document 60 incorporates the images 62 using HTML tagsthat specify the location of files or other Internet resource containingthe images on the Internet 52.

When used for browsing documents, the illustrated browser displays thedocument in a window 68 or rectangular area of the computer's display 30allocated to the browser by the operating system. The illustrated window68 comprises a frame 70, a document display area 72, and user interfacecontrols 74. The browser displays the document within the documentdisplay area 72 of the window 68.

FIG. 3 is a flow diagram of an HTML document customization method 80 bywhich customizing information for a customizable HTML document oncomputer network 52 is obtained and stored for a user of client 20. Thecustomizable HTML document is described as a top-level, trunk, or homepage for site 58 functioning as a world wide web gateway. It will beappreciated, however, that the customizable HTML document couldalternatively be of any level at site 58 and provide virtually anyfunctionality of an HTML document.

Process block 82 indicates that a user navigates client 20 to thenetwork address (e.g., Uniform Resource Locator) of customizable HTMLdocument at site 58. Client 20 in this step might not been to thenetwork address before, or might not have elected to customize the HTMLdocument during a previous access of it, or might have elected tocustomize the HTML document during a previous access of it.

Decision block 84 represents an inquiry whether client 20 has customizedthe HTML document during a previous access of it. Decision block 84proceeds to process 86 if client 20 has customized the HTML documentduring a previous access of it, and otherwise proceeds to process block88.

Process block 86 indicates that server 58 returns a customized HTMLdocument to client 20 via the browser. The customized HTML documentincludes a link by which the user can navigate to an HTML customizationdocument 92 (FIG. 4).

Process block 88 indicates that server 58 returns a default HTMLdocument (not shown) to client 20 via the browser. The default HTMLdocument includes a link by which the user can navigate to HTMLcustomization document 92.

Process block 96 indicates that the user navigates or activates the linkto HTML customization document 92 so that server 58 returns the documentto user client 20. In one embodiment, HTML customization document 92 isan HTML form that includes topical groupings of customization optionsrelating to, for example, news, sports, financial matters,entertainment, science and technology, life, weather, etc. (not all ofwhich are shown), that a user selects with graphical check boxes,buttons, etc. The customization options may relate to links to sitesthat provide information on, or direct links to, the selected topics. Inaddition, HTML customization document 92 can allow the user to designatespecific URLs to be included on the customized document. The userreturns the selected customization options to server 58 as customizationinformation.

Process block 98 indicates that the user selects customization optionsand returns them to server 58. Process block 100 indicates that thecustomization information is stored at server 58 with reference to useridentifying information that uniquely identifies the user. Process block102 indicates that server 58 returns the user identifying information tothe browser on user client 20. In one embodiment, the user identifyinginformation is customization persistent client state information,sometimes referred to as a “cookie.” The customization persistent clientstate information is or includes, for example, 128-bit globally uniqueidentifiers (“GUID”) that are capable of uniquely identifying each userthat elects customization. Such identifiers may be created for examplewith a function callnamed “CoCreateGUID” from the Win32™ library offunctions available in the Windows 95 and Windows NT operating systemsavailable from Microsoft Corporation.

Although described as using a persistent client state to carryidentifying information between user client 20 and server 58, thecustomization of HTML or other network documents is substantiallyindependent of how the identifying information is conveyed between userclient 20 and server 58. The information can be conveyed in any of awide variety of forms or formats, including basic authentication as setforth in the hypertext transfer protocol standard (e.g., HTTP 1.1), anyother client certification standards, or even simple usernames orpasswords. Utilization of usernames and passwords for identifyingclients is incorporated, for example, in the Internet Information Server(IIS) feature in the Windows™ NT operating system of MicrosoftCorporation. With identifying information from the user, regardless ofthe format or manner conveyed, the customization options selected by auser can be correlated with and returned to that user.

A persistent client state, or “cookie,” is generally arbitrary textinformation (e.g., of up to 255 characters) returned to user client 20by server 58 when it is accessed by user client 20. The informationincludes one or more network addresses (e.g., Uniform Resource Locators,URLs) for which the persistent client state is applicable. For a browserthat accommodates client states, user client 20 stores the client stateinformation. On subsequent accesses of any of the specified networkaddresses by the browser on user client 20, selected information in theclient state is returned to server 58. A benefit of using a persistentclient state to carry the information is that it is automatic andtransparent to the user.

A persistent client state is specified by a Set-Cookie HTTP responseheader of the form:

Set-Cookie: name=VALUE; expires=DATE;

path=PATH;domain=DOMAIN_NAME; secure.

For example, when it requests an HTML document from a network address onserver 58, the browser determines whether the address matches orcorresponds to the addresses or paths specified in any of the storedpersistent client states. For each persistent client state matching orcorresponding to the address, the browser transmits the name and valueof the persistent client state with the HTML document request. Theformat of the transmission is:

Cookie: name1=VALUE1; name2=VALUE2; . . .

The attributes of the Set-Cookie header are:

name=VALUE

This attribute specifies the name and content of the persistent clientstate data and is the only required attribute on the Set-Cookie header.The name and its value can be any sequence of characters, exceptsemi-colon, comma and white space. For example, this attribute can havethe name ‘User’ and the content or value can be a 128-bit globallyunique identifier (“GUID”) referenced to the time the user accesses thenetwork address.

expires=DATE

This attribute specifies an expiration date for the persistent clientstate. After expiration, the persistent client state is no longer storedor returned to the server at the originating network address. The DATEis formatted as:

Wdy, DD-Mon-YYYY HH:MM:SS GMT

If this attribute is not set, then the persistent client state expiresimmediately after leaving the specified network address. Accordingly,this attribute is set to allow customization information to be retrievedfor a user during subsequent accesses of the specified networkaddresses.

domain=DOMAIN_NAME

This attribute specifies a top level or “tail” domain to be initiallyexamined when searching for a valid persistent state client in a list ofpersistent state clients. The top level or “tail” domain requires atleast three periods, such as “.custom.home.uk,” except that only twoperiods are required in the top level domains “com”, “edu”, “gov”,“int”, “mil”, “net”, and “org”. A persistent state client with amatching top level domain match proceeds to path matching. The defaultvalue of this attribute is the host name of the server generating thepersistent state client.

path=PATH

The path attribute specifies the network addresses (e.g., URLs) within adomain for which the persistent state client is valid (i.e., returned bythe browser on user client 20 when the specified network address isrequested or accessed). The format for this attribute is ‘path=/foo’,and the persistent state client is returned only if the browser requestsa network address (e.g., URL) in the path ‘/foo’ or lower, such as‘/foo/default’. The most general specification is ‘path=/’. If thisattribute is not specified, the default path is the same as the path forthe document with which the persistent client state is associated.

secure

If this attribute is set, the persistent state client is transmittedfrom user client 20 only if the communication channel with server 58 issecure (e.g., utilizing a secure socket layer). If this attribute is notspecified, the persistent client state is sent regardless of thesecurity of the channel.

FIG. 5 is a flow diagram of a customized HTML document delivery method110 by which a customized HTML document 112 (FIG. 6) is delivered touser client 20. Customized HTML document 112 illustrates generally anexemplary lay-out of a customized HTML document corresponding to theexemplary selections in HTML customization document 92 (FIG. 4).

Process block 114 indicates that a user navigates client 20 to thenetwork address (e.g., Uniform Resource Locator) of customizable HTMLdocument at site 58. The browser on user client 20 in this step hascustomization persistent client state information by way ofcustomization method 80.

Process block 116 indicates that the browser on user client 20 passesthe customization persistent client state information to server 58 as aresult of accessing the network address designated in the information.

Process block 118 indicates that server 58 correlates the customizationpersistent client state information (i.e., the user identifyinginformation) with the customization options stored at server 58. Thecustomization options stored at server 58 may be correlated in anyconventional database format. The customization options may include awide variety of information such as, for example, network addresses(e.g., URLs) of a user's favorite sites, types of news that the userwants to see, display information that determines how the information ispresented to the user, stock ticker symbols for which the user wishes toreceive stock quotes, or the city for which the user wishes to receive aweather report. The customization information can be virtuallyarbitrary.

The customization persistent client state information (i.e., the useridentifying information) is used as an index into a database to retrievethe customization options for each user.

Process block 120 indicates that server 58 returns to user client 20customized HTML document 112 formed in accordance with the customizedoptions stored at server 58. With reference to the examples set forthabove, server 58 can form customized HTML document 112 by displaying theuser's favorite sites such that they become hotlinks that can be clickedon directly, pulling the appropriate news stories out of a database orother means of storing text articles referenced by type (e.g., URLs),changing the colors, shapes, and textures of the displayed informationin accordance with the user preferences, displaying stock quotes for thecompanies in which the user is interested, and displaying the user'slocal weather report.

Having described and illustrated the principles of our invention withreference to an illustrated embodiment, it will be recognized that theillustrated embodiment can be modified in arrangement and detail withoutdeparting from such principles. It should be understood that theprograms, processes, or methods described herein are not related orlimited to any particular type of computer apparatus, unless indicatedotherwise. Various types of general purpose or specialized computerapparatus may be used with or perform operations in accordance with theteachings described herein. Elements of the illustrated embodiment shownin software may be implemented in hardware and vice versa.

In view of the many possible embodiments to which the principles of ourinvention may be applied, it should be recognized that the detailedembodiments are illustrative only and should not be taken as limitingthe scope of our invention. Rather, we claim as our invention all suchembodiments as may come within the scope and spirit of the followingclaims and equivalents thereto.

We claim:
 1. A method by which a client computer creates and views acustomized network document, comprising: at creation time: accessing anetwork document; reviewing a plurality of options for customizing thenetwork document; selecting at least one option from the plurality ofoptions with which the network document is to be customized;communicating the selected at least one option to a server; receiving anidentifier from the server, and storing the identifier on the clientcomputer; and at viewing time: accessing the network document; receivinga request from the server for the identifier; communicating theidentifier to the server; and receiving from the server a version of thenetwork document that has been customized with the selected at least oneoption.
 2. The method of claim 1 wherein the identifier is a unique useridentifier associated with the client computer, and wherein the clientcomputer stores the identifier in a cookie.
 3. The method of claim 2wherein the unique identifier is a GUID.
 4. The method of claim 3wherein the GUID is a 128-bit globally unique identifier that is capableof uniquely identifying each and every user of the method.
 5. The methodof claim 2 wherein the cookie includes one of more network addresses forwhich the cookie is applicable.
 6. The method of claim 2 wherein thecookie includes a date on which the cookie expires.
 7. The method ofclaim 1 wherein the network document is in HTML format.
 8. The method ofclaim 1 wherein the plurality of options are grouped into topicalgroupings.
 9. The method of claim 1 wherein the network is the Internet.10. The method of claim 1 wherein the network document is associatedwith a network address.
 11. The method of claim 10 wherein the networkaddress is a uniform resource locator.
 12. A method of providing acustomized network document over a network to each of multiple users ofcorresponding client computers, comprising: from a client computer,navigating to a network address of a customizable document stored on aserver computer; if the customizable document has previously beencustomized from the client computer, receiving from the server computerthe customized document and displaying the customized document on theclient computer; if the customizable document has not previously beencustomized from the client computer: receiving on the client computer,from the server computer, a default uncustomized document and displayingthe default document on the client computer, the uncustomized documentcontaining a link to request customization options; receiving, on theclient computer, user input of a selection of the link on the defaultdocument to request customization options and transmitting the selectionto the server computer; in response to the selection of the link,receiving on the client computer a customization options page from theserver computer and displaying the customization options page on theclient computer; receiving, on the client computer, user input ofcustomization information associated with selections of desired optionson the customization options page; transmitting the customizationinformation from the client computer to the server computer; andreceiving on the client computer, from the server computer, a cookiehaving a globally unique identifier stored therein that uniquelyidentifies each user that elects customization and storing the cookie onthe client computer; and upon subsequent navigations to the networkaddress of the customizable document, transmitting the cookie from theclient computer to the server computer and receiving, at the clientcomputer, the document customized in accordance with the customizationinformation previously provided to the server computer and displayingthe customized document on the client computer.
 13. The method of claim12, wherein the customized document is an HTML document.
 14. The methodof claim 12, wherein globally unique identifier is 128 bits.
 15. Themethod of claim 12, wherein the server stores the customizationinformation in a database and the globally unique identifier is an indexinto the database to retrieve customization options selected by theuser.
 16. The method of claim 15, wherein the server generates thecustomized document based on the customization information and theserver transmits the customized document to the client.